Devices operating in connection with a packet data communication network require certain configuration information. In order to facilitate the deployment of networks, such configuration information can be provided automatically, for example in connection with a dynamic host configuration protocol (DHCP) or a bootstrap protocol (BOOTP). Such configuration information may include the address of the device, the address of the local network server, the address of the gateway to the outside world, etc. In a typical implementation, a device sends a message on a well-known server port requesting such information when the device is initially started, or when it is rebooted.
In general, the amount of time required for a device to boot up should be kept short. In a typical case, the amount of time required for a network server and a device to perform the initial negotiation of assigned addresses and other information is a fraction of a second. However, the amount of time required for negotiation of such parameters can become significantly longer when the communication network is congested. One reason for increased negotiation times when the network is congested is that protocols for providing configuration information to devices are optimized for the typical case, in which a single device is booting, and when there is little congestion on the network. However, when a large number of devices boot up at the same time, for example after an interruption of power affecting the network, the network can become congested with requests for configuration information. In addition, devices requesting configuration information have no knowledge of current network conditions when they attempt to negotiate configuration information. Therefore, devices will request configuration information even though the request is likely to go unanswered, and even though the effect of the request is to increase network congestion. According to DHCP and other configuration protocols, when congestion is encountered, devices can have extended retry intervals. For example, retry intervals can be over a minute. Also, the size of the “randomness” window within which devices make their attempts to negotiate configuration information is small. As a result, the mean time to boot of devices can be drastically increased when congestion is encountered.
In order to provide improved boot times in situations where large numbers of devices are attempting to negotiate configuration information on a network, random delays can be applied. In particular, the time between starting a device and the initiation of the start algorithm can be randomly delayed. Although such an approach can be effective at reducing the average time to boot when a large number of devices are started or restarted at the same time, an unacceptable amount of delay is added to the time required for a device to boot under normal network conditions. Therefore, the use of random delays is not an acceptable solution to the problem of increased boot times in congested networks.
Another approach to providing improved boot times is to divide the communication network into a number of subnetworks. However, such “over-provisioning” of a network by providing a number of subnetworks and a corresponding number of servers is expensive, and results in a surplus of network capacity under normal operating conditions.